﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Capa_Entidad;
using Capa_Negocio_Interface;
using Capa_Negocio_Facade;

public partial class Ventas_wfCamaListado : System.Web.UI.Page
{
    private static IFacadeRegistrarCama InterfaceRegistrarCama;
    private static List<V_Hos_Cama> ListarCamas = null;
    private static HOS_CAMA objHos_Cama;
    private static String msg, titulo;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                if (Session["Grabacion"] != null)
                {
                    titulo = (Convert.ToBoolean(Session["Grabacion"])) ? "Grabacion Exitosa" : "ERROR";
                    msg = Session["msg"].ToString();
                    Session["Grabacion"] = null;
                    MostrarComentario(msg, titulo);
                }
                CargarCamas();
            }
        }
        catch (Exception ex)
        {
            titulo = "ERROR AL CARGAR LA PAGINA";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }

    private void CargarCamas()
    {
        try
        {
            ListarCamas = new List<V_Hos_Cama>();
            InterfaceRegistrarCama = new FacadeRegistrarCama();
            ListarCamas = InterfaceRegistrarCama.listarCama();
            dgvListadoCamas.DataSource = ListarCamas;
            dgvListadoCamas.DataBind();
        }
        catch (Exception ex)
        {
            titulo = "ERROR AL CARGAR LAS CAMAS";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }

    protected void AgregarCama(object sender, EventArgs e)
    {
        try
        {
            Session["vOperacion"] = "C";
            Response.Redirect("wfCama.aspx", false);
        }
        catch (Exception ex)
        {
            titulo = "ERROR AL AGREGAR UNA CAMA";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }

    protected void ModificarCama(object sender, EventArgs e)
    {
        try
        {
            int index = dgvListadoCamas.FocusedRowIndex;
            if (index > -1)
            {
                int? idcama = Convert.ToInt32(dgvListadoCamas.GetRowValues(index, "idCama"));
                Session["idCama"] = idcama;
                Session["vOperacion"] = "M";
                Response.Redirect("wfCama.aspx", false);
            }
            else
            {
                titulo = "Mensaje";
                msg = "Debe Seleccionar Una Cama A Modificar";
                MostrarComentario(msg, titulo);
            }
        }
        catch (Exception ex)
        {
            Session["vOperacion"] = "C";
            titulo = "ERROR AL OBTENER EL CODIGO DEL REGISTRO";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }
    
    protected void EliminarCama(object sender, EventArgs e)
    {
        try
        {
            int index = dgvListadoCamas.FocusedRowIndex;
            if (index > -1)
            {
                objHos_Cama = new HOS_CAMA();
                int idcama = Convert.ToInt32(dgvListadoCamas.GetRowValues(index, "idCama"));
                objHos_Cama.CAM_ID_CAMA = idcama;
                Boolean ok = InterfaceRegistrarCama.EliminarCama(objHos_Cama);
                if (ok == true)
                {
                    titulo = "Mensaje";
                    msg = "Cama Eliminada Correctamente.";
                    MostrarComentario(msg, titulo);
                    CargarCamas();
                }
                else
                {
                    titulo = "Mensaje";
                    msg = "Error Al Eliminar La Cama";
                    MostrarComentario(msg, titulo);
                }
            }
            else
            {
                titulo = "Mensaje";
                msg = "Debe Seleccionar Una Cama A Eliminar";
                MostrarComentario(msg, titulo);
            }
        }
        catch (Exception ex)
        {
            titulo = "ERROR AL ELIMINAR LA CAMA";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }

    protected void dgvListadoCamas_PageIndexChanged(object sender, EventArgs e)
    {
        CargarCamas();
    }

    private void MostrarComentario(String msg, String titulo)
    {
        pcMensaje.HeaderText = titulo;
        lblMensaje.Text = msg;
        ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
    }

}